home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / THINKC / 4_0 / HYPERXCM / HYPERXCM.H next >
Text File  |  1991-10-22  |  4KB  |  97 lines

  1. #ifndef _HyperXCmd_
  2. #define _HyperXCmd_
  3. /*
  4.   ⌐ 1987 Apple Computer, Inc.
  5.   All Rights Reserved
  6. */
  7.  
  8. typedef struct
  9. {
  10.   short int  paramCount;      /* number of arguments     */
  11.   Handle     params[16];      /* the argument handles    */
  12.   Handle     returnValue;     /* the result of this XCMD */
  13.   Boolean    passFlag;        /* pass message on? T/F    */
  14.   void       (*entryPoint)(); /* call back to HyperCard  */
  15.   short int  request;         /* what you want           */
  16.   short int  result;          /* the answer it gives     */
  17.   long       inArgs[8];       /* args for call back      */
  18.   long       outArgs[4];      /* returned from call back */
  19. } XCmdBlock, *XCmdBlockPtr;
  20.  
  21. typedef unsigned char Str31[32];
  22. typedef double extended;
  23.  
  24. /*  Result codes
  25. */
  26. #define xresSucc   0
  27. #define xresFail   1
  28. #define xresNotImp 2
  29.  
  30. /*  Request codes
  31. */
  32. #define xreqSendCardMessage   1
  33. #define xreqEvalExpr          2
  34. #define xreqStringLength      3
  35. #define xreqStringMatch       4
  36. #define xreqSendHCMessage     5
  37. #define xreqZeroBytes         6
  38. #define xreqPasToZero         7
  39. #define xreqZeroToPas         8
  40. #define xreqStrToLong         9
  41. #define xreqStrToNum         10
  42. #define xreqStrToBool        11
  43. #define xreqStrToExt         12
  44. #define xreqLongToStr        13
  45. #define xreqNumToStr         14
  46. #define xreqNumToHex         15
  47. #define xreqBoolToStr        16
  48. #define xreqExtToStr         17
  49. #define xreqGetGlobal        18
  50. #define xreqSetGlobal        19
  51. #define xreqGetFieldByName   20
  52. #define xreqGetFieldByNum    21
  53. #define xreqGetFieldByID     22
  54. #define xreqSetFieldByName   23
  55. #define xreqSetFieldByNum    24
  56. #define xreqSetFieldByID     25
  57. #define xreqStringEqual      26
  58. #define xreqReturnToPas      27
  59. #define xreqScanToReturn     28
  60. #define xreqScanToZero       39
  61.  
  62. /*
  63. ** THINK-C prototypes for the glue routines
  64. */
  65. extern pascal void     SendCardMessage (XCmdBlockPtr, StringPtr);
  66. extern pascal Handle   EvalExpr (XCmdBlockPtr, StringPtr);
  67. extern pascal long     StringLength (XCmdBlockPtr, StringPtr);
  68. extern pascal Ptr      StringMatch (XCmdBlockPtr, StringPtr, Ptr);
  69. extern pascal void     SendHCMessage (XCmdBlockPtr, StringPtr);
  70. extern pascal void     ZeroBytes (XCmdBlockPtr, Ptr, long);
  71. extern pascal Handle   PasToZero (XCmdBlockPtr, StringPtr);
  72. extern pascal void     ZeroToPas (XCmdBlockPtr, char*, StringPtr);
  73. extern pascal long     StrToLong (XCmdBlockPtr, Str31*);
  74. extern pascal long     StrToNum (XCmdBlockPtr, Str31*);
  75. extern pascal Boolean  StrToBool (XCmdBlockPtr, Str31*);
  76. extern pascal void     StrToExt (XCmdBlockPtr, Str31*, extended*);
  77. extern pascal void     LongToStr (XCmdBlockPtr, long, Str31*);
  78. extern pascal void     NumToStr (XCmdBlockPtr, long, Str31*);
  79. extern pascal void     NumToHex (XCmdBlockPtr, long, short, Str31*);
  80. extern pascal void     BoolToStr (XCmdBlockPtr, Boolean, Str31*);
  81. extern pascal void     ExtToStr (XCmdBlockPtr, extended*, Str31*);
  82. extern pascal Handle   GetGlobal (XCmdBlockPtr, StringPtr);
  83. extern pascal void     SetGlobal (XCmdBlockPtr, StringPtr, Handle);
  84. extern pascal Handle   GetFieldByName (XCmdBlockPtr, Boolean, StringPtr);
  85. extern pascal Handle   GetFieldByNum (XCmdBlockPtr, Boolean, short);
  86. extern pascal Handle   GetFieldByID (XCmdBlockPtr, Boolean, short);
  87. extern pascal void     SetFieldByName (XCmdBlockPtr, Boolean, StringPtr, Handle);
  88. extern pascal void     SetFieldByNum (XCmdBlockPtr, Boolean, short, Handle);
  89. extern pascal void     SetFieldByID (XCmdBlockPtr, Boolean, short, Handle);
  90. extern pascal Boolean  StringEqual (XCmdBlockPtr, Str31*, Str31*);
  91. extern pascal void     ReturnToPas (XCmdBlockPtr, Ptr, StringPtr);
  92. extern pascal void     ScanToReturn (XCmdBlockPtr, Ptr*);
  93. extern pascal void     ScanToZero (XCmdBlockPtr, Ptr*);
  94. extern pascal void     DoJsr (XCmdBlockPtr);
  95.  
  96. #endif _HyperXCmd_
  97.